home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1996 March / MacWorld 03:96.toast / Graphics / clip2gif 0.7.2 / More documentation < prev    next >
Text File  |  1996-01-05  |  9KB  |  211 lines

  1. clip2gif v.0.7.2 
  2. Documentation for advanced users
  3.  
  4.  
  5. Scripting
  6. clip2gif implements the following AppleEvents:
  7.  
  8. run:
  9.     run
  10.  
  11. open: 
  12.     open  alias  -- list of the files to open
  13.         [batch conversion  boolean]
  14.  
  15. print: 
  16.     print  anything
  17.  
  18. quit:
  19.     quit
  20.  
  21. close: Close an object
  22.     close  reference  -- the object to close
  23.  
  24. copy: Copy the current selection to the clipboard
  25.     copy
  26.  
  27. get: Get the data for an object
  28.     get  reference  -- the object whose data is to be returned
  29.     Result:   anything  -- the data from the object
  30.  
  31. save: 
  32.     save  anything  -- the file(s) or picture to convert, or {width,height}
  33.         as  type class
  34.           [in  file specification]  -- file “...” / string / picture / window / window num
  35.         [renaming file  boolean]  -- true to prevent a file from being overwritten by itself
  36.         [crop  small integer]  -- {left,top,right,bottom} before scaling
  37.         [scale  small integer]  -- scale factor in %
  38.         [maximum size  small integer]  -- {max. width, max. height}
  39.         [colors palette  system colors/gray shades/input colors/RGB]
  40.           [depth  small integer]  -- bits per pixels
  41.         [transparency  no/white/first pixel]  -- or {red,green,blue}
  42.         [interlacing  boolean]
  43.           [dithering  boolean]
  44.           [quality  very low/low/normal/high/very high]
  45.           [drawing  graphic element]  -- a list of elements to draw
  46.     [Result:   anything]  -- picture or string
  47.  
  48. set: 
  49.     set  reference  -- the object to change
  50.         to  anything  -- the new value
  51.  
  52. measure: gets the dimensions of an image
  53.     measure  anything  -- the file or picture to measure
  54.         [scale  small integer]  -- scale factor in %
  55.     Result:   a list of small integer  -- {scaled_width, scaled_height}
  56.  
  57. get PICT resource of: 
  58.     get PICT resource of  file specification
  59.         [ID  small integer]
  60.         [name  plain text]
  61.         [index  small integer]
  62.     Result:   picture
  63.  
  64. Some options have a meaning only for a given conversion:
  65. —to GIF: transparency, interlacing, colors palette (system colors/gray shades/input colors), depth, dithering
  66. —to TIFF: colors palette (system colors/gray shades/input colors/RGB), depth, dithering
  67. —to JPEG: quality
  68. Specifying a useless option doesn't result in an error.
  69.  
  70. Notes
  71.  
  72. • clip2gif is recordable (i.e. you can record the conversions with all their options in an AppleScript by pushing the record button of the ScriptEditor).
  73. • "clipboard" can be used as the object of "save", "drawn picture", "get", "set" and "measure" (note that "get" is often implicit in AppleScript: you can write "set cl to clipboard").
  74. • "screen" can be used as the object of "save", "drawn picture" and "get".
  75. • Due to a limitation of the Mac toolbox, clip2gif must be active in order to use the clipboard (as well as any application you copy a PICT from); use "activate" in scripts.
  76. • If one specifies "in string" for the save output, the result corresponds to the file content for GIFs, TIFFs and JPEGs, but not for PICTs. PICTs in strings correspond to the content of a picture in memory (PicHandle or clipboard or AppleEvent data). PICT files have an additional header of 512 bytes.
  77. • If one specifies "in picture" for the save output, the result is a PICT that can be used as input for other conversions, or as the parameter of "drawn picture" (see below). "in picture" overrides "as ...".
  78. • If one specifies "in window" for the save output, a new window is opened.
  79. • Cropping a PICT does not remove what is clipped out. The PICT size will not decrease. Only the bounding rectangle is changed.
  80. • With System 7 to 7.1, AppleEvent objects are limited to 64 kilobytes. Consequently, with these systems, "in string" and "in picture" cannot be used with large images. With images larger than a few kilobytes, one cannot run AppleScripts from Script Editor, unless Script Editor memory partition has been increased in the Finder (Get Info). One has to create applets and increase their default memory partition.
  81.  
  82. Typical use
  83.  
  84. tell application "clip2gif"
  85.     save file "foo.pict" as GIF scale 50 depth 4 with interlacing transparency first pixel
  86.                 --creates a file named test.gif based on foo.pict
  87. end tell
  88.  
  89. Drawings
  90.  
  91. It's possible to script clip2gif to draw simple graphical elements, such as text, lines, frames and filled rectangles. For this, use the drawing argument. Scale has no effect. You can start either with an existing picture (specify a PICT or GIF file the usual way), or with a blank rectangle (specify its size as a list of two numbers). The argument of drawing is a list of records containing:
  92.  
  93. drawn text  plain text  -- the text to draw
  94. rectangle  a list of small integer  -- filled rectangle
  95. frame  a list of small integer  -- rectangle outline
  96. disk  a list of small integer  -- disk or filled ellipse described by its bounding rect.
  97. circle  a list of small integer  -- circle or ellipse described by its bounding rect.
  98. line  a list of small integer  -- connected straight line(s)
  99. polygon  a list of small integer  -- filled polygon
  100. drawn picture  picture  -- PICT clipped to its bounding rectangle
  101. chart data  a list of small integer  -- chart data values (in pixels or degrees)
  102. color  RGB color  -- red, green and blue (0-65535)
  103. thickness  small integer  -- line thickness
  104. position  a list of small integer  -- position ({x, y} or {left, top, right, bottom})
  105. justification  right/left/centered  -- text justification
  106. font  plain text  -- font name
  107. size  small integer  -- characters size (in points)
  108. style  a list of bold/italic/outline/shadow/underline/condensed/expanded  -- the styles for the text
  109. chart style  bars/lines/pie
  110.  
  111. Each chart data value can be followed by an RGB color (list of three small integers). This is especially useful for pie charts, as shown below.
  112.  
  113. Examples
  114.  
  115. --converts a PICT file to GIF and adds a title
  116. save file "test.pict" as GIF with interlacing drawing
  117.         {{drawn text:"This is a test", position:{50,20}, color:{65535,0,0},font:"Times",size:24,style:{bold}}}
  118.  
  119. --creates a drawing from scratch in a new window with a line, a frame, a filled rectangle and centered text
  120. save {120,100} in window
  121.         drawing {{line:{10,10,100,10},thickness:2},
  122.                 {frame:{10,20,100,80}},
  123.                 {rectangle:{15,25,105,85}, color:{65535,65535,0}},
  124.         {position:{20,30,100,80},justification:centered,drawn text:"Nice example, isn't it?"}}
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. --additional parameters for rounded rectangles and arcs (works also with frames and circles)
  134. set red to {65535, 0, 0}
  135. set blue to {0, 0, 65535}
  136.     save {260, 60} in window drawing
  137.         {{rectangle:{10, 10, 50, 50}, color:blue},
  138.             {rectangle:{60, 10, 100, 50, 40, 20}, color:red}, --corner oval width and height
  139.             {disk:{110, 10, 150, 50}, color:blue},
  140.             {disk:{160, 10, 200, 50, 0, 120}, color:red}, --start and end angle in degrees,
  141.             {disk:{210, 10, 250, 50, 45, 360}, color:red}} --from 3 o'clock counterclockwise
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148. --creates a chart from scratch 
  149. save {120,100} in window
  150.         drawing {{position:{20,10,100,90}, chart style:pie,
  151.                 chart data:{110,{0,65535,0},90,{65535,0,0},160,{0,0,65535}}}}
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160. --gets the content of a folder as the image of its Finder window 
  161. set fdr to choose folder
  162. tell application "Finder"
  163.     activate
  164.     open fdr
  165.     set r to bounds of window 1
  166. end tell
  167. tell application "clip2gif" to save screen crop r in window
  168. tell application "Finder" to close window 1
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179. --animates two discs
  180. tell application "clip2gif"
  181.     save {150, 100} in window --new blank window
  182.     repeat with i from 10 to 70 by 5
  183.         save {150, 100} drawing {{disk:{i, i, i + 20, i + 20}, color:{65535, 0, 0}},
  184.         {disk:{100 - i, 80 - i, 120 - i, 100 - i}, color:{0, 0, 65535}}} in window 1
  185.     end repeat
  186. end tell
  187.  
  188. For another example, open a new window in the Script Editor, click on the recording button, switch to clip2gif, select "About clip2gif..." in the Apple menu. Then switch back to the Script Editor and click on the Stop button.
  189.  
  190. For more information about scripting...
  191.  
  192. If you have installed AppleGuide (standard with MacOS 7.5 and later, optional with MacOS 7.1), open the Help menu (? icon at the right of the menu bar) and choose clip2gif Guide. There are detailed information about scripting, and many examples.
  193.  
  194. For documentation about how to use clip2gif with other applications, look in the Scripting clip2gif folder.
  195.  
  196. Using clip2gif from another program
  197.  
  198. Several functions of clip2gif 0.7.1 and later can be used from other programs compiled for the PowerPC with the Code Fragment Manager. See the header file LoadClip2Gif.h and the examples  for more details.
  199.  
  200. Note that you may not include clip2gif with your programs without a prior agreement. Cf. the Copyright notice in the main ReadMe file. LoadClip2Gif.h and LoadClip2Gif.c, however, can be used freely.
  201.  
  202. Small Print
  203. This document is Copyright 1995, Yves Piguet. All rights reserved.
  204. The author makes no warranty with respect to this document, its quality, accuracy, or fitness for a particular purpose. As a result, this document is provided "as is", and the user is assuming the entire risk as to its quality and accuracy.
  205.  
  206. Author
  207. Yves Piguet <piguet@ia.epfl.ch>
  208. Av. de la Chablière 35
  209. 1004 Lausanne
  210. Switzerland
  211.